﻿using AForge.Video.DirectShow;
using System;

namespace Black.CameraCapture
{
    /// <summary>
    /// Représente un périphérique de capture sur le poste
    /// </summary>
    public sealed class CaptureDevice : IComparable<CaptureDevice>
    {
        #region Propriétés

        /// <summary>
        /// Obtient l'identifiant du périphérique
        /// </summary>
        public string ID
        {
            get;
            internal set;
        }


        /// <summary>
        /// Obtient le nom du périphérique
        /// </summary>
        public string Name
        {
            get;
            internal set;
        }

        #endregion

        #region Constructeurs

        /// <summary>
        /// Constructeur de la classe
        /// </summary>
        /// <param name="device">Définition du périphérique</param>
        internal CaptureDevice(FilterInfo device)
        {
            this.ID = device.MonikerString;
            this.Name = device.Name;
        }

        #endregion

        #region Fonctions publiques

        /// <summary>
        /// Compare deux instances
        /// </summary>
        /// <param name="other">Instance de comparaison</param>
        /// <returns>Indice de comparaison</returns>
        public int CompareTo(CaptureDevice other)
        {
            return (this.Name.CompareTo(other.Name));
        }

        #endregion
    }
}
